The present invention relates to a microprogram controlled data processing apparatus, and more particularly to a microprogram controlled data processing apparatus for executing instructions which have characteristics of multiple operands and orthogonality, and in which an operand specifier for specifying an address of an operand is given independently from an operation code (OP code) for indicating the operation to be performed with respect to the specified operands
Such an instruction format is known from, for example, the "VAX 11 Architecture Handbook", copyright 1979, by Digital Equipment Corporation or U.S. Pat. No. 4,236,206 issued Nov. 25, 1980.
Since the address of the operand is specified independently from the OP code which indicates the operation to be performed, information indicating whether an operand is in a memory unit (hereunder referred to as a "memory") or in a general purpose register (hereunder referred to as a "register") is not given by the OP code, but is given by an operand specifier of the instruction.
In general, a top address of a microprogram stored in microprogram memory for executing an instruction is generated on the basis of an OP code, but in such an instruction format the location of the operand cannot be identified by merely decoding the OP code.
In a prior art microprogram controlled data processing apparatus, it is necessary to include the microinstructions in a microprogram in order to determine whether an operand is in memory or in a register. As a result, for a MOVE instruction, for example, which has two operand specifiers, the microprogram saves, or stores the first operand in a work register in the first step, determines whether the destination of the operand is in the memory or in the register in the second step, and carries out the required write operations in the third step. Thus, the prior art apparatus needs a step for determining the location of the destination of the operand in the course of the microprogram execution and hence fast execution of the instruction is not achieved.